package com.eascs.web.o2o.report.task;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.eascs.app.log.Logger;
import com.eascs.app.log.LoggerFactory;
import com.eascs.common.util.StopWatch;
import com.eascs.web.o2o.report.service.FefundService;
import com.eascs.web.o2o.report.service.MessageEmailServiceImpl;

@Component("o2omsgtask")
public class O2oMSGTask{
	protected final Logger logger = LoggerFactory.getLogger(getClass());
	@Autowired
	FefundService fefundService;

	@Autowired
	MessageEmailServiceImpl messageEmailServiceImpl;
	
	
	
	
	/**
	 * @Title: findFundBeforeOneDay
	 * @Description: 查询国安村镇银行还息日前6天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月4日 下午1:14:35
	 */
	@Scheduled(cron = "0 00 09 ? * *" )  
	public void findGACZFundBeforeSixDay() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.GACZFundBeforeDay(6);
		logger.info("每天上午 9点执行,国安村镇银行还息日前6天短信队列生成任务结束,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60 );
	}
	
	
	/**
	 * @Title: findNotGACZFundBeforeOneDay
	 * @Description: 查询非国安村镇银行还息日前6天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月4日 下午1:32:16
	 */
	@Scheduled(cron = "0 00 09 ? * *" ) 
	public void findNotGACZFundBeforeSixDay() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.notGACZFundBeforeDay(6);
		logger.info("每天上午 9点执行,非国安村镇银行还息日前6天短信队列生成任务结束,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60 );
	}
	
	/**
	 * @Title: findFundBeforeOneDay
	 * @Description: 查询国安村镇银行还息日前3天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月4日 下午1:14:35
	 */
	@Scheduled(cron = "0 00 09 ? * *" )  
	public void findGACZFundBeforeTwoDay() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.GACZFundBeforeDay(3);
		logger.info("每天上午 9点执行,国安村镇银行还息日前3天短信队列生成任务结束,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60 );
	}
	
	
	/**
	 * @Title: findNotGACZFundBeforeOneDay
	 * @Description: 查询非国安村镇银行还息日前3天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月4日 下午1:32:16
	 */
	@Scheduled(cron = "0 00 09 ? * *" )  
	public void findNotGACZFundBeforeOneDay() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.notGACZFundBeforeDay(3);
		logger.info("每天上午 9点执行,非国安村镇银行还息日前3天短信队列生成任务结束,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60 );
	}
	
	
	/**
	 * @Title: findFundBeforeEnd15ByGACZ
	 * @Description: 国安村镇银行贷款到期日前15天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月5日 下午2:12:05
	 */
	@Scheduled(cron = "0 00 09 ? * *" )  
	public void findFundBeforeEnd15ByGACZ() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.findFundBeforeEndByGACZ(15,true);
		logger.info("每天上午 9点执行,[国安村镇银行]贷款到期日前15天,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
	
	/**
	 * @Title: findFundBeforeEnd15ByNotGACZ
	 * @Description: 非国安村镇银行贷款到期日前15天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月5日 下午2:13:10
	 */
	@Scheduled(cron = "0 00 09 ? * *" ) 
	public void findFundBeforeEnd15ByNotGACZ() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.findFundBeforeEndByNotGACZ(15, true);
		logger.info("每天上午 9点执行,[非国安村镇银行]贷款到期日前15天,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
	
	

	/**
	 * @Title: findFundBeforeEnd6ByGACZ
	 * @Description: 国安村镇银行贷款到期日前6天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月5日 下午2:12:05
	 */
	@Scheduled(cron = "0 00 09 ? * *" )  
	public void findFundBeforeEnd6ByGACZ() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.findFundBeforeEndByGACZ(6,false);
		logger.info("每天上午 9点执行,[国安村镇银行]贷款到期日前6天,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
	
	/**
	 * @Title: findFundBeforeEnd6ByNotGACZ
	 * @Description: 非国安村镇银行贷款到期日前6天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月5日 下午2:13:10
	 */
	@Scheduled(cron = "0 00 09 ? * *" ) 
	public void findFundBeforeEnd6ByNotGACZ() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.findFundBeforeEndByNotGACZ(6, false);
		logger.info("每天上午 9点执行,[非国安村镇银行]贷款到期日前6天,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
	
	
	
	/**
	 * @Title: findFundBeforeEnd3ByGACZ
	 * @Description: 国安村镇银行贷款到期日前3天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月5日 下午2:12:05
	 */
	@Scheduled(cron = "0 00 09 ? * *" )  
	public void findFundBeforeEnd3ByGACZ() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.findFundBeforeEndByGACZ(3,false);
		logger.info("每天上午 9点执行,[国安村镇银行]贷款到期日前3天,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
	
	/**
	 * @Title: findFundBeforeEnd3ByNotGACZ
	 * @Description: 非国安村镇银行贷款到期日前3天
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月5日 下午2:13:10
	 */
	@Scheduled(cron = "0 00 09 ? * *" ) 
	public void findFundBeforeEnd3ByNotGACZ() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.findFundBeforeEndByNotGACZ(3, false);
		logger.info("每天上午 9点执行,[非国安村镇银行]贷款到期日前3天,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
	

	
	/**
	 * @Title: findGACZOverdue
	 * @Description: 国安村镇银行逾期的第二天发送
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月5日 下午2:31:59
	 */
	@Scheduled(cron = "0 00 09 ? * *" ) //逾期每天9点10分
	public void findGACZOverdue() { //逾期短信队列(新老系统)
		StopWatch stopWatch = new StopWatch();
		fefundService.findGACZOverdue();
		logger.info("逾期每天9点,国安村镇银行逾期短信队列生成任务结束,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
	
	
	
	/**
	 * @Title: findNotGACZOverdue
	 * @Description: 非国安村镇银行逾期的第二天发送
	 * @author 张庆奇
	 * @return void
	 * @throws
	 * @date 2018年1月5日 下午2:31:59
	 */
	@Scheduled(cron = "0 00 09 ? * *" ) //逾期每天9点10分
	public void findNotGACZOverdue() { //逾期短信队列(新老系统)
		StopWatch stopWatch = new StopWatch();
		fefundService.findNotGACZOverdue();
		logger.info("逾期每天9点,非国安村镇银行逾期短信队列生成任务结束,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
	
	@Scheduled(cron = "0 */5 * * * ?")  //扫表插入,每五分钟执行一次
	public void localToWorkflow() { 
		StopWatch stopWatch = new StopWatch();
		fefundService.localToWorkflow();
		logger.info("每五分钟执行一次,逾期短信队列生成任务结束,共耗时：[{}]分" ,stopWatch.elapsedTime() / 1000 / 60);
	}

	
	
	
	@Scheduled(cron = "0 0 */1 * * ?")  //每一小时查询一次
	public void findNewFundFKS() { //国安村镇新老系统放款日当天发送
		StopWatch stopWatch = new StopWatch();
		fefundService.findNewFundFKS();
		logger.info("每一小时查询一次,国安村镇放款日当天发送短信队列生成任务结束,共耗时：[{}]分",stopWatch.elapsedTime() / 1000 / 60);
	}
}
